<html>
<head>
<title>Mobclix for Android Changelog</title>
<link href="../files/default.css" rel="stylesheet" type="text/css">
</head>
<body>

[<a href="./../index.html">Mobclix for Android</a>] >> [Changelog]<br>

<h2>Version 3.2.0</h2>  

<ul type="circle">
	<li>
		Mobclix no longer passes personally identifying information unencoded. This should allow apps using Mobclix to be accepted into the Amazon App Store.
	</li>
	<li>
		Improved the ability of a developer to cancel an ad request in progress.
	</li>
	<li>
		Added an error code for when an ad request is canceled.
	</li>
</ul>

<h2>Version 3.1.4</h2>  

<ul type="circle">
	<li>
		Improved orientation detection in Android 2.2+ devices to support Reverse Portrait and Reverse Landscape orientations.
	</li>
	<li>
		The MobclixAdView no longer has scrollbars when in banner form.
	</li>
	<li>
		Fixed a bug where remote configuration could fail too soon when passed an unsupported ad size.
	</li>
	<li>
		Deprecated some Rich Media methods for Android SDK 1.6 and below.
	</li>
	<li>
		The MobclixFullScreenAdView now prevents more than one FullScreenAdView from displaying at once.
	</li>
	<li>
		Fixed an issue where a preloaded Video ad would cause issues with OpenGL SurfaceViews.
	</li>
	<li>
		Improved memory management.
	</li>
</ul>

<h2>Version 3.1.3</h2>  

<ul type="circle">
	<li>
		Disabled WebView plugins for Android API level 3+, preventing the Flash ad crash.
	</li>
	<li>
		Added additional checks to prevent leaking impressions.
	</li>
	<li>
		A number of fixes to cause code to crash gracefully.
	</li>
</ul>

<h2>Version 3.1.2</h2>  

<ul type="circle">
	<li>
		Added a close button to the MobclixFullScreenAdView.
	</li>
	<li>
		Added checks to prevent a MobclixFullScreenAdView from requesting an ad when an ad is already displayed.
	</li>
	<li>
		Moved Open Allocation onAdClick listener triggers into the "MMAdClickedToNewBrowser" and "MMAdClickedToOverlay" listeners of the Millennial Media SDK
		and the "onPresentScreen" listener of the Google AdMob SDK.
	</li>
</ul>

<h2>Version 3.1.1</h2>  

<ul type="circle">
	<li>
		Worked around a memory leak in the Google AdMob SDK so that Open Allocation Google/AdMob users are less likely to leak memory.
	</li>
	<li>
		Updated the Detailed Start Guide for Android with details on how to set up Proguard to work with Open Allocation Millennial Media.
	</li>
	<li>
		Added error catching to the initialization of the MobclixBrowserActivity to prevent badly constructed ads from crashing applications.
	</li>
</ul>


<h2>Version 3.1.0</h2>  

<ul type="circle">
	<li>
		Added Open Allocation support for the Millennial Media Android SDK. A network adapter is provided to
		make integration as simple as possible.
	</li>
	<li>
		Added an addition check to prevent the Mobclix Android SDK from leaking Views and Activities.
	</li>
	<li>
		Fixed a bug where fullscreen ads would link to the browser version of the Android Market, instead of
		redirecting to the Android Market app.
	</li>
	<li>
		Fixed a bug where html ads that contained dropdown ads could cause a force close.
	</li>
</ul>

<h2>Version 3.0.1</h2>  

<ul type="circle">
	<li>
		Removed the ability to hard code a MobclixAdView at 320x50px, which would prevent proper scaling of a
		MobclixAdView on higher pixel density devices.
	</li>
	<li>
		Fixed a bug where full screen AdViews would sometimes through NullPointerExceptions when clicked.
	</li>
</ul>

<h2>Version 3.0.0</h2>  

<ul type="circle">
	<li>
		Removed the GET_TASKS permission requirement. The permission can be removed from the AndroidManifest.xml.
	</li>
	<li>
		Added ProGuard support. For details on implementation, please refer to the Detailed Start Guide for
		Android.pdf file included with the Mobclix Android SDK.
	</li>
	<li>
		Fixed a bug where Open Allocation Google AdMob would Force Close applications with an IllegalStateException.
	</li>
	<li>
		Fixed an edge case bug caused by malformed ads attempting to load unsupported URIs.
	</li>
	<li>
		Fixed an edge case bug that threw a NullPointerException when loading the MobclixBrowserActivity.
	</li>
	<li>
		Reduced the memory footprint of the Mobclix Android SDK.
	</li>
</ul>

<h2>Version 2.3.2</h2>  

<ul type="circle">
	<li>
		Added open allocation support for the 4.0 release of the Google/AdMob SDK.
	</li>
	<li>
		Added support for streaming quicktime videos for html ads for devices running Android 2.1 and above.
	</li>
	<li>
		Added more aggressive WebView garbage collection to prevent WebView memory leaks.
	</li>
	<li>
		Fixed a bug where Full Screen creatives wouldn't function properly on tablets running Honeycomb.
	</li>
	<li>
		Fixed a bug where the wrong listener would be called when a Full Screen ad was dismissed.
	</li>
	<li>
		Fixed an edge case bug that would crash Activities on Android 1.5 and 1.6 when refreshing an ad after a
		Full Screen creative had been closed.
	</li>
</ul>

<h2>Version 2.3.1</h2>  

<ul type="circle">
	<li>
		Added support for HTML5 videos for html ads for devices running Android 2.1 and above.
	</li>
	<li>
		Added additional checks to prevent autoplay ads from disrupting a users experience unless specifically allowed by the developer.
	</li>
</ul>

<h2>Version 2.3.0</h2>  

<ul type="circle">
	<li>
		Added the MobclixFullScreenAdView and MobclixFullScreenAdViewListener, an interstitial ad unit.
	</li>
	<li>
		Mobclix Android Library now throws a MobclixPermissionException if the application doesn't have the necessary permissions.
	</li>
	<li>
		Removed a default check for the rooted status of the device. This was causing some devices with a superuser monitoring app to show a warning, which should not be default behavior. A convenience method has been added for developers to use to check rooted status if they want to.
	</li>
	<li>
		Fixed bug where Mobclix AdViews could leak an IntentReceiver.
	</li>
	<li>
		Fixed bug where Mobclix AdViews would crash the Android Layout Editor when added to an activity.
	</li>
	<li>
		Fixed a bug with Mobclix on Android OS version 1.5.
	</li>
</ul>

<h2>Version 2.2.1</h2>  

<ul type="circle">
	<li>
		Fixed a bug where ads wouldn't show up if Mobclix.onCreate(this); wasn't called to initiate Mobclix prior to the ad call.
	</li>
</ul>

<h2>Version 2.2.0</h2>  

<ul type="circle">
	<li>
		Performance improvements throughout the SDK
	</li>
	<li>
		Significant improvements for Rich Media ads.
	</li>
    <li>
		MobclixFeedback now introduces a listener object to receive callbacks as to whether feedback was successfully sent.
	</li>
	<li>
		Added the ability to specify an autoplay timeout interval on the Developer Dashboard.
	</li>
	<li>
		Added new richMediaRequiresUserInteraction MobclixAdView method to work along side shouldAutoplay.
	</li>
	<li>
		Changed location fetching to use the last location stored in the location manager instead of actively polling, reducing GPS usage and battery drain.
	</li>
</ul>

<h2>Version 2.1.3</h2>  

<ul type="circle">
	<li>
		<b>General: Reduced the Mobclix memory footprint.</b><br>
		Decreased the size in memory of the Mobclix SDK.
	</li>
    <li>
		<b>Bug Fix: Caught OutOfMemory Error.</b><br>
		Caught OutOfMemory Error caused by retrieving an ad in a low memory conditions, canceling the ad request for more elegant failure.
	</li>
</ul>

<h2>Version 2.1.2</h2>  

<ul type="circle">
	<li>
		<b>General: Improved thread management.</b><br>
		Improved location thread management to reduce battery drain on location handling.
	</li>
    <li>
		<b>Bug Fix: Fixed onLocationChanged NullPointerException.</b><br>
		Mobclix AdViews would crash on a onLocationChanged call, caused by using location targeted ads.
	</li>
</ul>

<h2>Version 2.1.1</h2>  

<ul type="circle">
	<li>
		<b>General: Improved thread management.</b><br>
		Improved location thread management to reduce battery drain.
	</li>
	<li>
		<b>General: ACCESS_NETWORK_STATE permission has been made optional.</b><br>
		ACCESS_NETWORK_STATE has been made optional to address concerns about permission requirements of the Mobclix Android Library.
	</li>
	<li>
		<b>General: Updated onOpenAllocation documentation.</b><br>
		The documentation on onOpenAllocation of the MobclixAdViewListener was incorrect. It has been updated to reflect it's proper return value.
	</li>
    <li>
		<b>Bug Fix: Fixed Android Layout Editor bug.</b><br>
		Mobclix AdViews would crash the Android Layout Editor when added to an activity.
	</li>
	<li>
		<b>Bug Fix: Demographics gps fix.</b><br>
		Demographics data was failing to log when the location string returned by the phone was too long.
	</li>
	<li>
		<b>Bug Fix: Location provider fix.</b><br>
		The Mobclix Android Library would occassionally trigger an IllegalArgumentException if the location provider was unavailable on the device. This was caused by a defect in Android as detailed at <a href="http://code.google.com/p/android/issues/detail?id=2163" target="_blank">http://code.google.com/p/android/issues/detail?id=2163</a>. The fix detailed has been applied.
	</li>
</ul>

<h2>Version 2.1.0</h2>  

<ul type="circle">
    <li>
		<b>Feature: Added Analytics.</b><br>
		The Mobclix Android Library now has better analytics support, better session tracking and custom event logging.
	</li>
	<li>
		<b>Feature: Added Feedback.</b><br>
		The Mobclix Android Library can now be used to collect feedback information in the form of quantitative ratings, qualitative comments, and demographics information. Examples of this can be found in the Mobclix Android Demo application.
	</li>
	<li>
		<b>Feature: Better AdMob Open Allocation integration.</b><br>
		The Mobclix Android Library no longer requires the developer to manually handle AdMob Open Allocation. By simply adding the AdMob SDK to the project in the Java Build Paths window, the Mobclix Android Library will automatically handle loading ads from AdMob. If no AdMob ad is available, the Mobclix Android Library will automatically request another ad.
	</li>
	<li>
		<b>General: The 300x50 AdView size has been changed to 320x50.</b><br>
		The new AdView size allows the ads to be flush with the sides of most Android devices in portrait mode.
	</li>
	<li>
		<b>General: Rich Media ad improvements.</b><br>
		Added support for two icon text ads. Added support for clicked ads to load in a minimal browser with a close icon.
	</li>
	<li>
		<b>General: Location handling improvements.</b><br>
		Improved location targeting code to reduce battery drain and increase accuracy.
	</li>
    <li>
		<b>Bug Fix: Fixed OutOfMemoryException crash.</b><br>
		Certain ads were causing the Mobclix Android Library to crash if the creatives being loaded were too large in size.
	</li>
</ul>

<h2>Version 2.0.4</h2>  

<ul type="circle">
    <li>
		<b>Bug Fix: Fixed Android SDK 7 (2.1) ViewFlipper bug in Android SDK 8.</b><br>
		Android SDK 7 introduced a bug where a ViewFlipper would cause errors if the orientation of the phone changes back and forth rapidly. The fix implemented is detailed at <a href="http://code.google.com/p/android/issues/detail?id=6191">http://code.google.com/p/android/issues/detail?id=6191</a>. The fix was extended to the recently released SDK version 8.
	</li>
    <li>
		<b>Bug Fix: Fixed bug with Android 1.5.</b><br>
		The ViewFlipper fix used an API 4 method, causing AdViews to run into issues on Android platforms 1.5 and earlier.
	</li>
</ul>

<h2>Version 2.0.3</h2>  

<ul type="circle">
    <li>
		<b>Feature: Added pause() and resume() methods.</b><br>
		Some developers hoping to pause ad requests while they ran heavy processing threads were using cancelAd() to stop ads. This is inelegant, so pause() and resume() were introduced to allow for cleaner pausing and resuming of ad requests.
	</li>
	<li>
		<b>General: Improved location awareness of FINE and COARSE location permissions.</b><br>
		Improved the handling of location awareness. Notably, the SDK will only attempt to require a GPS position for ten seconds before succeeding or giving up. This will prevent the SDK from draining the battery unduly.
		</li>
    <li>
		<b>Bug Fix: Fixed Android SDK 7 (2.1) ViewFlipper bug.</b><br>
		Android SDK 7 introduced a bug where a ViewFlipper would cause errors if the orientation of the phone changes back and forth rapidly. The fix implemented is detailed at <a href="http://code.google.com/p/android/issues/detail?id=6191">http://code.google.com/p/android/issues/detail?id=6191</a>.
	</li>
    <li>
		<b>Bug Fix: Fixed does not refresh setting bug.</b><br>
		Setting the refresh time on the Mobclix Developer Dashboard would prevent the AdView from loading on instantiation. However, if the activity lost and regained focus, the AdView would begin refreshing.
	</li>
</ul>

<h2>Version 2.0.2</h2>  

<ul type="circle">
    <li>
		<b>General: Increased performance on remote configuration retrieval.</b><br>
		Update to the polling thread that waits for remote configuration retrieval has been updated to be more efficient. Also improved remote configuration error handling when the device has no limited or no connection.
	</li>
    <li>
		<b>General: Improved text ad formatting.</b><br>
		Single line text ads are now vertically centered in the ad space. Originally, they appeared above or below another TextView that only contained an empty string.
	</li>
    <li>
		<b>Bug Fix: Fixed Mobclix Suballocation.</b><br>
		Suballocation requests were returning as -503 UNAVAILABLE errors instead of Suballocation for AdMob and Google AdSense.
	</li>
    <li>
		<b>Bug Fix: Better error handling when an ad is clicked.</b><br>
		If an <code>MobclixAdView</code> was instantiated with a non-Activity context, an exception would be thrown when the ad was clicked. This has been handled and should now direct the user to the url.
	</li>
</ul>

<h2>Version 2.0.1</h2>  

<ul type="circle">
    <li>
		<b>Bug Fix: Fixed a NullPointerException.</b><br>
		Devices trying to load an add before the locale of the device was loaded were running into a NullPointerException.
	</li>
</ul>

<h2>Version 2.0.0</h2>  

<ul type="circle">
    <li>
		<b>Feature: Rich Media ad support.</b><br>
		The Mobclix Android Library now has support for Mobclix's Rich Media ad formats, including text ads, banner ads, slider ads, video ads, and popover ads.
	</li>
    <li>
		<b>Feature: Remote Configuration support.</b><br>
		The Mobclix Android Library now has support for remote configuration of its ad units. From the dashboard, you can now set the refresh time for your Ad Units, which will be reflected every time the app relaunches.
	</li>
    
    <li>
		<b>General: Minimum refresh time set to 30 seconds.</b><br>
		Lower refresh rates decrease CTR and can strain the system.
	</li>
    <li>
		<b>General: AdViews retrieve ads automatically upon initialization.</b><br>
		AdViews no longer need to have <code>getAd()</code> called to retrieve ads. This means that no code at all is necessary to grab ads, only adding the AdView to the layout.
	</li>
    <li>
		<b>General: Method <code>public boolean shouldTouchThrough(MobclixAdView adview)</code> removed.</b><br>
		This method allowing the blocking of ad touch through has been removed.
	</li>
    <li>
		<b>General: Reduced delay on loading first Activity with a Mobclix AdView by 80%.</b><br>
		Better handling of retrieving phone settings has reduced the delay noticed by some developers when they first loaded an Activity with a Mobclix AdView.
	</li>
    
    <li>
		<b>Bug Fix: NullPointerException no longer thrown on <code>query</code> and <code>keywords</code> methods of <code>MobclixAdViewListener</code>.</b><br>
		When the <code>query</code> or <code>keywords</code> methods of the <code>MobclixAdViewListener</code> were set to return <code>null</code>, the Mobclix library would throw a NullPointerException.
	</li>
    <li>
		<b>Bug Fix: NullPointerException no longer thrown on initialization of a Mobclix AdView when the APPLICATION_ID isn't set in the AndroidManifest.</b><br>
		When the APPLICATION_ID wasn't set in the AndroidManifest, instantiating a Mobclix AdView was throwing a NullPointerException. This has been replaced with a NotFoundException with an error message to better indicate the problem.
    </li>
    <li>
        <b>Bug Fix: <code>MobclixAdViewListener</code> methods are now called in the UI Thread.</b><br>
        In previous versions of the library, the <code>MobclixAdViewListener</code> methods were called in a separate thread, preventing developers from using these methods to change the UI of their application with implementing their own handlers. This has been fixed to make it easier to use these methods, especially for handling Open Allocation.
    </li>
</ul>

<h2>Version 1.0.4</h2>  

<ul type="circle">
    <li>
		<b>Bug Fix: Fixed ad loading fail -503 on 3G.</b><br>
		Devices trying to load ads on 3G, but not on WiFi would sometimes get a -503 error.
	</li>
</ul>

<h2>Version 1.0.3</h2>  

<ul type="circle">
	<li>
		<b>General: Keyword and query support added to ad requests.</b><br>
		The <code>MobclixAdViewListener</code> now has two new methods for developers to set keywords and queries to for ad requests.
	</li>
    <li>
		<b>General: <code>setRefreshTime</code> method added to AdViews.</b><br>
		AdViews can now be set to refresh at regular intervals without significant amounts of extra code.
	</li>
    <li>
		<b>Bug Fix: Fixed crash when trying to retrieve location data from a non-existant provider.</b><br>
		Devices (and the android emulator) without appropriate location providers no longer crash when attempting to retrieve location data.
	</li>
    <li>
		<b>Bug Fix: Fixed NullPointerException when trying to load xml files with Mobclix AdViews in the Eclipse Layout Builder.</b><br>
		It is now possible to use the Eclipse Layout Builder with Mobclix AdViews.
	</li>
</ul>

<h2>Version 1.0.2</h2>  

<ul type="circle">
	<li>
		<b>General: Added support for high pixel density screens.</b><br>
		Ads now take the appropriate amount of space on high pixel density screens such as the Nexus One and Droid.
	</li>
    <li>
		<b>General: AdView backgrounds have been changed to transparent by default.</b><br>
		While loading, AdViews will be transparent, instead of a block of white.
	</li>
</ul>

<h2>Version 1.0.1</h2>  

<ul type="circle">
	<li>
		<b>General: Removed MobclixActivity.class</b><br>
		Integration is now simpler than ever!
	</li>
</ul>


<h2>Version 1.0.0</h2>  

<ul type="circle">
	<li>
		<b>Initial Release</b><br> 
		Check out <a href="http://www.mobclix.com">www.mobclix.com</a> for details.
	</li>
</ul>


</body>
</html>